//package top.xierongsheng.user.controller;
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.google.common.base.Joiner;
//import io.swagger.v3.oas.annotations.Operation;
//import io.swagger.v3.oas.annotations.tags.Tag;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//import top.xierongsheng.code.R;
//import top.xierongsheng.code.aspect.log.Log;
//import top.xierongsheng.code.aspect.log.LogType;
//import top.xierongsheng.code.aspect.power.RequiresPermissions;
//import top.xierongsheng.code.oss.OSSClientService;
//import top.xierongsheng.user.dto.GoodsDto;
//import top.xierongsheng.user.dto.groups.Create;
//import top.xierongsheng.user.dto.groups.Update;
//import top.xierongsheng.user.dto.groups.UpdateStatus;
//import top.xierongsheng.user.model.GOODS;
//import top.xierongsheng.user.service.IGoodsService;
//import top.xierongsheng.utlis.data.RandomUtil;
//
//import java.util.*;
//
//@Slf4j
//@RestController
//@RequestMapping(path = "/goods")
//@RequiredArgsConstructor
//@CrossOrigin
//@Tag(name = "商品接口")
//public class GoodsController {
//
//    private final IGoodsService goodsService;
//
//    @PostMapping(path = "/addGoods", consumes = {"application/json", "application/x-www-form-urlencoded"})  //仅映射POST请求
//    @Log(type = LogType.web, desc = "商品表-新增")
//    @RequiresPermissions("addGoods")
//    @Operation(summary = "新增商品")
//    public R addGoods(@RequestHeader(name = "userId") String userId, @RequestBody @Validated(Create.class) GoodsDto goodsDto) {
//        List<String> pictureList = Arrays.asList(goodsDto.getPicture().split(","));
//        if (pictureList.size() > 6) {
//            return R.fail("商品展示图最多6张！");
//        }
//        if (goodsDto.getEndTime().getTime() < goodsDto.getStartTime().getTime()) {
//            return R.fail("活动结束时间必须大于活动开始时间！");
//        }
//        List<String> onlineUrlList = new ArrayList<String>();
//        for (String url : pictureList) {
//            String onlineUrl = OSSClientService.uploadFileRegular(url);
//            if(onlineUrl != null){
//                onlineUrlList.add(onlineUrl);
//            }else{
//                onlineUrlList.add(url);
//            }
//        }
//
//        GOODS goods = new GOODS();
//        goods.setId(RandomUtil.getUUID());
//        goods.setCreateTime(new Date());
//        goods.setCreatorId(userId);
//        goods.setName(goodsDto.getName());
//        goods.setStartTime(goodsDto.getStartTime());
//        goods.setEndTime(goodsDto.getEndTime());
//        goods.setStatus(2);
//        goods.setPicture(Joiner.on(",").join(onlineUrlList));
//        goods.setType(goodsDto.getType());
//        goods.setUpdateId(userId);
//        goods.setUpdateTime(new Date());
//        goodsService.save(goods);
//        return R.ok("新增商品成功");
//    }
//
//    @PostMapping(path = "/updateGoods", consumes = {"application/json", "application/x-www-form-urlencoded"})
//    @Log(type = LogType.web, desc = "商品表-更新")
//    @RequiresPermissions("updateGoods")
//    @Operation(summary = "编辑商品")
//    public R updateGoods(@RequestHeader(name = "userId") String userId, @RequestBody @Validated(Update.class) GoodsDto goodsDto) {
//        List<String> pictureList = Arrays.asList(goodsDto.getPicture().split(","));
//        if (pictureList.size() > 6) {
//            return R.fail("商品展示图最多6张！");
//        }
//        if (goodsDto.getEndTime().getTime() < goodsDto.getStartTime().getTime()) {
//            return R.fail("活动结束时间必须大于活动开始时间！");
//        }
//        GOODS goods = goodsService.getById(goodsDto.getId());
//        if (goods == null) {
//            return R.fail("该商品不存在");
//        }
//
//        List<String> onlineUrlList = new ArrayList<String>();
//        for (String url : pictureList) {
//            String onlineUrl = OSSClientService.uploadFileRegular(url);
//            if(onlineUrl != null){
//                onlineUrlList.add(onlineUrl);
//            }else{
//                onlineUrlList.add(url);
//            }
//        }
//
//
//        goods.setName(goodsDto.getName());
//        goods.setStartTime(goodsDto.getStartTime());
//        goods.setEndTime(goodsDto.getEndTime());
//        goods.setPicture(Joiner.on(",").join(onlineUrlList));
//        goods.setType(goodsDto.getType());
//        goods.setUpdateId(userId);
//        goods.setUpdateTime(new Date());
//        goodsService.updateById(goods);
//        return R.ok("更新商品成功");
//    }
//
//    @PostMapping(path = "/updateGoodsStatus", consumes = {"application/json", "application/x-www-form-urlencoded"})
//    @Log(type = LogType.web, desc = "商品表—状态更新")
//    @RequiresPermissions("updateGoodsStatus")
//    @Operation(summary = "更新商品状态")
//    public R delAndDisableAndEnableByIds(@RequestHeader(name = "userId") String userId, @RequestBody @Validated(UpdateStatus.class) GoodsDto goodsDto) {
//        List<String> ids = Arrays.asList(goodsDto.getId().split(","));
//        List<String> errMap = new ArrayList<String>();
//        for (String id : ids) {
//            GOODS goods = new GOODS();
//            goods.setId(id);
//            goods.setUpdateId(userId);
//            goods.setUpdateTime(new Date());
//            goods.setStatus(goodsDto.getStatus());
//            boolean b = goodsService.updateById(goods);
//            if (!b) {
//                errMap.add("[" + id + "]该商品不存在");
//            }
//        }
//        if (errMap.size() > 0) {
//            return R.fail("商品状态更新失败").zip("data", errMap);
//        } else {
//            return R.ok("商品状态更新成功");
//        }
//    }
//
//
//    @GetMapping(path = "/getGoodsListPage")
//    @RequiresPermissions("searchGoods")
//    @Operation(summary = "分页查询获取商品列表")
//    public
//    R getGoodsListPage(@RequestHeader(name = "userId") String userId, @RequestParam String startDate, @RequestParam String endDate, @RequestParam String type, @RequestParam Integer status, @RequestParam String key, @RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "10") Integer pageSize) {
//        IPage<HashMap> page = goodsService.getGoodsListPage(new Page<>(pageNo, pageSize), startDate, endDate, type, status, key);
//        List<HashMap> userIPage = page.getRecords();
//        Map baseReturn = new HashMap();
//        baseReturn.put("pageNo", page.getCurrent());
//        baseReturn.put("pageSize", page.getSize());
//        baseReturn.put("total", page.getTotal());
//        baseReturn.put("list", userIPage);
//        return R.ok().zip("data", baseReturn);
//    }
//
//    /**
//     * 根据商品id获取商品信息
//     *
//     * @param userId    用户id
//     * @param id        商品id
//     * @auther 谢荣生
//     * @datetime 2020/10/20 10:25
//     */
//    @GetMapping(path = "/getGoodsInfoById")
//    @Operation(summary = "根据商品id获取商品信息")
//    public
//    R getGoodsInfoById(@RequestHeader(name = "userId") String userId, @RequestParam String id) {
//        if (id == null || id.trim().isEmpty()) {
//            return R.fail("id不允许为空");
//        }
//        GOODS goods = goodsService.getById(id);
//        if (goods == null) {
//            return R.fail("商品不存在");
//        } else {
//            return R.ok("获取商品信息成功").zip("data", goods);
//        }
//    }
//
//
//}
